﻿using B.S.DataBase.MyProject.ErrorCode;
using MediatR;
using SqlSugar;

namespace MedicalPCTerminal.Write.API.Appcation.Commands.Management
{
    /// <summary>
    /// 添加随访命令
    /// </summary>
    public class AddFollowCommand : IRequest<APIResult<object>>
    {
        /// <summary>
        /// 基础信息ID，关联患者的基本信息
        /// </summary>
        [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
        public int BasicId { get; set; }
        /// <summary>
        /// 记录的唯一标识符，自增主键
        /// </summary>
        [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
        public int RecordId { get; set; }

        /// <summary>
        /// 患者的姓名
        /// </summary>
        public string PatientName { get; set; }

        /// <summary>
        /// 患者的编号
        /// </summary>
        [SugarColumn(IsNullable = true)]
        public string PatientNumber { get; set; }

        /// <summary>
        /// 随访的日期
        /// </summary>
        public DateTime FollowUpDate { get; set; }

        /// <summary>
        /// 随访的方式，可选值有门诊、家庭、电话
        /// </summary>
        public string FollowUpMethod { get; set; }

        /// <summary>
        /// 患者出现的症状，多个症状可用逗号分隔
        /// </summary>
        public string Symptoms { get; set; }

        /// <summary>
        /// 患者的血压，格式为 收缩压
        /// </summary>
        public string BloodPressureSystolic { get; set; }
        /// <summary>
        /// 患者的血压，格式为 /舒张压
        /// </summary>
        public string BloodPressureDiastolic { get; set; }

        /// <summary>
        /// 患者的当前体重，单位为千克
        /// </summary>
        public decimal CurrentWeight { get; set; }
        /// <summary>
        /// 患者的目标体重，单位为千克
        /// </summary>
        public decimal TargetWeight { get; set; }

        /// <summary>
        /// 患者的当前体质指数
        /// </summary>
        public decimal CurrentBMI { get; set; }
        /// <summary>
        /// 患者的目标体质指数
        /// </summary>
        public decimal TargetBMI { get; set; }

        /// <summary>
        /// 患者的心率，单位为次/分钟
        /// </summary>
        public int CurrentHeartRate { get; set; }
        /// <summary>
        /// 患者的心率，单位为次/分钟
        /// </summary>
        public int TargetHeartRate { get; set; }

        /// <summary>
        /// 除上述记录外的其他情况描述
        /// </summary>
        public string OtherConditions { get; set; }

        /// <summary>
        /// 患者的日吸烟量，单位为支
        /// </summary>
        public int CurrentSmoking { get; set; }
        /// <summary>
        /// 患者的日吸烟量，单位为支
        /// </summary>
        public int TargetSmoking { get; set; }

        /// <summary>
        /// 患者的当前日饮酒量，单位为两
        /// </summary>
        public decimal CurrentAlcohol { get; set; }
        /// <summary>
        /// 患者的目标日饮酒量，单位为两
        /// </summary>
        public decimal TargetAlcohol { get; set; }

        /// <summary>
        /// 患者每周的运动频次
        /// </summary>
        public int CurrentExerciseFrequency { get; set; }

        /// <summary>
        /// 患者每次运动的时长，单位为分钟
        /// </summary>
        public int CurrentExerciseDuration { get; set; }

        /// <summary>
        /// 患者每天的当前摄盐量，单位为克
        /// </summary>
        public string CurrentSaltIntake { get; set; }
        /// <summary>
        /// 患者每天的目标摄盐量，单位为克
        /// </summary>
        public string TargetSaltIntake { get; set; }

        /// <summary>
        /// 患者的当前·心理调整情况描述
        /// </summary>
        public string CurrentPsychological { get; set; }
        /// <summary>
        /// 患者的目标心理调整情况描述
        /// </summary>
        public string TargetPsychological { get; set; }

        /// <summary>
        /// 患者对医嘱的遵守行为情况描述
        /// </summary>
        public string CurrentCompliance { get; set; }
        /// <summary>
        /// 患者对医嘱的遵守行为情况描述
        /// </summary>
        public string TargetCompliance { get; set; }

        /// <summary>
        /// 患者的服药依从性情况描述
        /// </summary>
        public string CurrentMedication { get; set; }
        /// <summary>
        /// 患者的服药依从性情况描述
        /// </summary>
        public string TargetMedication { get; set; }

        /// <summary>
        /// 患者是否有药物不良反应，可选值为无、有
        /// </summary>
        public string AdverseDrugReaction { get; set; }

        /// <summary>
        /// 患者低血糖反应的情况，可选值为无、偶尔、频繁
        /// </summary>
        public string HypoglycemicReaction { get; set; }

        /// <summary>
        /// 此次随访的分类，可选值为控制满意、控制不满意、不良反应、并发症
        /// </summary>
        public string FollowUpClassification { get; set; }

        /// <summary>
        /// 第一种药物的名称
        /// </summary>
        public string DrugName1 { get; set; }

        /// <summary>
        /// 第一种药物的剂量
        /// </summary>
        public string DrugDose1 { get; set; }

        /// <summary>
        /// 第一种药物的用法
        /// </summary>
        public string DrugUsage1 { get; set; }

        /// <summary>
        /// 第二种药物的名称
        /// </summary>
        public string DrugName2 { get; set; }

        /// <summary>
        /// 第二种药物的剂量
        /// </summary>
        public string DrugDose2 { get; set; }

        /// <summary>
        /// 第二种药物的用法
        /// </summary>
        public string DrugUsage2 { get; set; }

        /// <summary>
        /// 第三种药物的名称
        /// </summary>
        public string DrugName3 { get; set; }

        /// <summary>
        /// 第三种药物的剂量
        /// </summary>
        public string DrugDose3 { get; set; }

        /// <summary>
        /// 第三种药物的用法
        /// </summary>
        public string DrugUsage3 { get; set; }

        /// <summary>
        /// 第四种药物的名称
        /// </summary>
        public string DrugName4 { get; set; }

        /// <summary>
        /// 第四种药物的剂量
        /// </summary>
        public string DrugDose4 { get; set; }

        /// <summary>
        /// 第四种药物的用法
        /// </summary>
        public string DrugUsage4 { get; set; }

        /// <summary>
        /// 患者转诊的原因描述
        /// </summary>
        public string ReferralReason { get; set; }

        /// <summary>
        /// 患者转入的机构及科室信息
        /// </summary>
        public string ReferralInstitution { get; set; }

        /// <summary>
        /// 下次随访的日期
        /// </summary>
        public DateTime NextFollowUpDate { get; set; }

        /// <summary>
        /// 进行此次随访的医生签名
        /// </summary>
        public string DoctorSignature { get; set; }
    }
}
